<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 适配 移动设备 -->
    <title>逻辑中断</title>
</head>
<body>
<img src="../7_函数/逻辑中断_短路问题1.png" alt="">
<img src="../7_函数/逻辑中断_短路问题2.png" alt="">
<a href="https://www.bilibili.com/video/BV1Y84y1L7Nn/?p=62&spm_id_from=pageDriver&vd_source=cb928a955f1123af004a2e3158113ea7">
    逻辑中断 视频说明
</a>
<hr>

<script>
    function 函数(x, y) {
        x = x || 0 // 逻辑中断写法, 这里相当于 赋值0
        y = y || 0
        console.log(x + y)
    }

    函数() // 调用函数,没有写参数. 但输出正常,因为上面的 x y 用 逻辑中断 写法赋值了

    // 逻辑中断 演示
    console.log(false && 22) // 输出 false,右边的不在执行
    console.log('--------')

    let age = 18
    console.log(false && age++) // 左边是假, 右边不执行了.  age++ 不执行
    console.log(age) // 值还是 18
    console.log('--------')

    console.log(true || age++) // 左边是真, 右边不执行了
    console.log(age) // 值还是 18
    console.log(true && age++) // 左边是真, 右边继续执行了. 但是输出的值是18, ++要在之后操作,因为++在后面
    console.log(age) // 值是 19
    console.log('--------')

    console.log(11 && 22)  // 都是真，这返回最后一个真值
    console.log(11 || 22)  //  输出第一个真值
</script>
</body>
</html>